package files;

import java.util.Arrays;

public class StringSplit {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		
		/*
		 * matche alles, was von einem $a, $b oder $b gefolgt wird. 
		 * $a ... gehören aber nicht zum Match dazu. 
		 * ein !, gefolgt von $a, wäre: !(?=\$a)
		 * 
		 * \b bedeutet Wortgrenze. Das heißt, endweder:
		 * - zwischen einem \w und einem \W
		 * - Am Anfang, wenn das erste Zeichen ein \w ist
		 * - am Ende, wenn das letzte Zeichen ein \w ist
		 * 
		 * (\w = word [a-zA-Z0-9], \W = nicht word)
		 * 
		 * Daher wird das erste $a nicht erkannt. Der Split erfolgt erst nach
		 * dem zweiten $b. Da aber in einem Unterfeld auch \W-Zeichen, z.B. "."
		 * vorkommen können, muss das korrekte Pattern lauten:
		 * 
		 * (?=\\$[abc])
		 * 
		 * Das erzeugt aber in den meisten Fällen der GND leere Strings, daher
		 * muss eine etwas aufwendige Prüfung eingeschaltet werden.
		 * 
		 * Ansonsten scheint mir das split-Verfahren am einfachsten.
		 */
		String patS = "\\$";//"(?=\\$)";
		String line = "$ax$by$cz";
		String [] arr = line.split(patS);
		
		System.err.println(Arrays.asList(arr));

	}

}
